package com.grao.waterschool.human.manager.service;

import com.grao.waterschool.human.common.R;
import com.grao.waterschool.human.entiry.dto.CourseHistoryDto;
import com.grao.waterschool.human.entiry.dto.CourseHistoryListDto;
import com.grao.waterschool.human.entiry.dto.GetCourseHistory;
import com.grao.waterschool.human.entiry.vo.AvgInfo;
import com.grao.waterschool.human.entiry.vo.CourseHistoryListVO;
import com.grao.waterschool.human.entiry.vo.CourseHistoryVO;
import com.grao.waterschool.human.entiry.vo.HistoryUpdateInfo;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;

public interface CourseHistoryListService {

    /**
     * 查询课程历史（根据JGH、ZC、JSH、TYPE）
     */
    R<List<CourseHistoryVO>> getCourseHistoryList(GetCourseHistory getCourseHistory);

    /**
     * 导出课程历史
     */
    void outPutCourseHistory(List<GetCourseHistory> getCourseHistory, HttpServletResponse response) throws IOException;

    /**
     * 下载图片
     */
    void getPicObject(String picName, HttpServletResponse response) throws Exception;


    R<String> updateCourseHistory(HistoryUpdateInfo historyUpdateInfo);

    /**
     * 插入课程
     *
     * @return
     */
//    R<String> insertCourseHistory(CourseHistoryDto courseHistoryDto);

    void deleteCourseHistory(String courseHistoryId);

    /**
     * 根据院系名字查询平均数值
     */
    List<AvgInfo> getAvgBycollege(CourseHistoryDto courseHistoryDto);

    R<List<CourseHistoryVO>> getCourseHistoryByType(CourseHistoryDto courseHistoryDto);

    R<List<CourseHistoryVO>> courseHistoryDetail(String kch);

    void deleteById(String id);

    void insertCourseHistoryList(List<CourseHistoryListDto> courseHistoryList);

    void updateCourseHistoryList(CourseHistoryListDto courseHistoryListDto);

    List<CourseHistoryListVO> courseHistoryList(Integer courseHistoryId);
}
